#pragma once

#include "Component.h"
#include "Rect.h"

namespace game_engine { namespace components
{

/*!
 * \class Camera
 * \brief 
 */
class Camera : public Component
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////
private:
    // Typically will be the same rect as the screen. In pixels. Considered to 
    // be in opengl coordinates (0, 0 in bottom left)
    utils::Rect view;

///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    Camera(void);
    Camera(GameObject *obj, const utils::Rect &v);
    virtual ~Camera(void);

    // Others

    // Getters
    const utils::Rect& getView(void) const;

    // Setters
    void setView(const utils::Rect &v);

};

}}
